import java.util.HashSet;

/**
 * 作者：吴超
 * 邮箱：wuchao_19931120@163.com
 * 时间：2021-10-11
 * 描述：整数数组，如果出现两个以上的重复数据，返回true,否则返回false;
 */

public class ContainsDuplicate {


    // 依次遍历，超时了！！
    public static boolean findDuplicate(int[] int_list){
        if (int_list.length == 0 || int_list.length == 1) {
            return false;
        }

        for (int i = 0; i < int_list.length; i++) {

            for (int j = i + 1; j < int_list.length; j++) {

                if (int_list[i] == int_list[j]) {
                    System.out.println(i);
                    return true;
                }

            }

        }
        return false;

    }


    // 利用hashset特性，hashset为无序不重复的集合，add的时候，如果存在这个元素，会返回false
    public static boolean findDuplicate2(int[] int_list){
        final HashSet<Integer> result_set = new HashSet<>();
        for (int il : int_list) {
            if (!result_set.add(il)) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[] int_list = {1,2,3,444,444,5,555,5,678};
        System.out.println(findDuplicate(int_list));
        System.out.println(findDuplicate2(int_list));
    }
}
